package com.enjava.web;


import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;


import com.enjava.Alumno;
import com.enjava.EMF;


import es.cea.web.ComentarioChat;
import es.cea.web.ListaUsuarios;
import es.cea.web.ServicioChat;
import es.cea.web.UsuarioChat;
import es.cea.web.UsuarioSession;

@Controller()
@Scope(value="request")
public class Controlador {
	
	@Autowired
	EMF emf;
	
	@Autowired
	ServicioChat servicioChat;
	
	@Autowired
	UsuarioChat usuChat;
	
	@Autowired
	ListaUsuarios listaUsuarios;
	
	@Autowired
	ComentarioChat mensajeChat;
	
	
	
	 @RequestMapping(value="/chat/nombre={nombre}")
	    public String activaChat(Model model, @PathVariable String nombre) {
		
		 	
		 	ComentarioChat c = new ComentarioChat();
		 	UsuarioChat usuTemporal = new UsuarioChat();
			usuTemporal= servicioChat.buscarUsuario(nombre);
		
			usuChat.setId(usuTemporal.getId());
			usuChat.setNombre(usuTemporal.getNombre());
			usuChat.setComentarios(usuTemporal.getComentarios());
			
			listaUsuarios.grabarUsuario(usuChat);
			
			model.addAttribute("listaLogeados", listaUsuarios);
			
			model.addAttribute("usuarioLogeado", usuChat);
			
			model.addAttribute("mensaje", new ComentarioChat());
			return "chat";
	    }

	 @RequestMapping(value="/chat/mensaje")
	    public String recibeMensaje(Model model,  @ModelAttribute("mensaje") ComentarioChat mensajeChat) {
			Date date = new Date();
			System.out.println("Aquiiiiiiiii: "+usuChat);
			mensajeChat.setAutor(usuChat);
		 	mensajeChat.setDate(date);
			servicioChat.guardaMensaje(mensajeChat);
		 
			model.addAttribute("listaLogeados", listaUsuarios);
			
			model.addAttribute("usuarioLogeado", usuChat);
			return "chat";
	    }
	 
	 
//	 @RequestMapping(value="/creaAlumno")
//	    public String creaAlumno(Model model , @ModelAttribute("alumno") Alumno a){
//		 	Alumno alumno = new Alumno();
//		 	alumno.setNombre("Carlos");
//		 	alumno.setApellidos("Diaz Caballero");
//		 	model.addAttribute("alumno", alumno);
//		 	return "formularioAlumno";
//	    }
//	 
//	 
//	 @RequestMapping(value="/creaAlumnoFormulario")
//	    public String creaAlumnoformulario(Model model , @ModelAttribute("alumno") Alumno a){
//		 	model.addAttribute("alumno", new Alumno());
//		 	System.out.println("Nombre Alumno: "+a.getNombre());
//		 	System.out.println("Apellidos Alumno: "+a.getApellidos());
//		 	
//		 	//Para persistir
//		 	EntityManager em = emf.getEM();
//		 	EntityTransaction transaction = em.getTransaction();
//		 	transaction.begin();
//		 	model.addAttribute("alumno",a);
//		 	transaction.commit();
//			return "okAlumnoCreado";
//	    }
}
